For some time, telephone users expect certain features to be available. For example, they expect to place calls on hold, make multiple calls at the same time, receive multiple calls with a call waiting alert, put some callers on hold and resume them, merge calls, and other features. As one example, a user might expect to:                Place a first call,        Put that call on hold,        Place a second call,        Receive an incoming call alert,        Accept the incoming third call, which puts any active call on hold,        Drop the third call,        Resume the first call from hold, and        Merge the remaining two callers into a three-way conference call.        
Web communications technology now makes it possible to make telephone calls through a web browser. This is enabled by technologies such as SRTP (Secure Real-Time Transport Protocol), which is one method for exchanging real-time media.
These calls are placed over the Internet rather than through traditional telephone lines, though a call that begins on the Internet may be redirected into traditional telephone lines. This is useful because Internet calls are less expensive than traditional telephone calls, and any software that runs on Web browsers is device-independent. Web browsers are in a sense a new type of highly portable operating system on which many applications, including Web communications, can run regardless of which device is being used.
Web browsers also create a secure environment that protects the underlying device on which they run from the applications that run inside the browser. Also Web browsers may record and present audio and video that is transmitted using a variety of formats, using Coders-Decoders (“codecs”), depending on what underlying device is involved. The hundreds of platforms that can run Web browsers and the dozens of Web browser implementations result in an overwhelming possibility of security and codec mismatched combinations when a call is placed from one Web browser to another.
Because of this, every time a call is placed from one Web browser to another, it must negotiate the security and codec protocols that are to be used. The two ends need to be using compatible protocols to authenticate and to send audio and video. They need to “speak the same language”. Only then can the call be connected over the Internet as voice packets.